/**
 * @author gy
 * @date 2022/2/27
 */
public class ClassCastException_ {
    public static void main(String[] args) {
        A b = new B();// 向上转型  B -> A A 指向自己的实例 B   子转父 可以
        B b1 = (B)b; // 向下转型 A -> B  父转子 可以
//        C c = (C)b; // 父 转 另一个儿子 C 不可以，因为 父 是由 B 转换得到的
//        C c = (C)b; // 这里会抛出类型转换异常

        // 儿子和爹 可以相互转
        // 但是不能将 大儿子b 转换成的 爹 再去转换成 小儿子c
        // B 和 C 是相互独立的，它们之间唯一的联系就是共有一个爹
        A b2 = new B();
        A c2 = new C();

    }

}
class A {}
class B extends A {}
class C extends A {}
